;;; Haunt --- Static site generator for GNU Guile
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;;
;;; This file is part of Haunt.
;;;
;;; Haunt is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or
;;; (at your option) any later version.
;;;
;;; Haunt is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
;;; General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with Haunt.  If not, see <http://www.gnu.org/licenses/>.

;;; Commentary:
;;
;; GNU Guix development package.  To build and install, run:
;;
;;   guix package -f guix.scm
;;
;; To use as the basis for a development environment, run:
;;
;;   guix environment -l guix.scm
;;
;;; Code:

(use-modules (guix packages)
             (guix licenses)
             (guix git-download)
             (guix build-system gnu)
             (gnu packages)
             (gnu packages autotools)
             (gnu packages guile)
             (gnu packages texinfo)
             (gnu packages pkg-config))

;; @@: Not used currently, but leaving it here in case we need to use it again :)
(define haunt-from-git
  (package
    (name "haunt")
    (version "git-37b4cde")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "git://dthompson.us/haunt.git")
                    (commit "37b4cde")))
              (sha256
               (base32
                "1n7y2gpgiq0rb1jphr2q05cl3kf0khfsrf52x0n5zwpn60snrnyr"))))
    (build-system gnu-build-system)
    (arguments
     '(#:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'bootstrap
           (lambda _ (zero? (system* "sh" "bootstrap")))))))
    (native-inputs
     `(("autoconf" ,autoconf)
       ("automake" ,automake)
       ("pkg-config" ,pkg-config)
       ("texinfo" ,texinfo)))
    (inputs
     `(("guile" ,guile-2.0)))
    (propagated-inputs
     `(("guile-reader" ,guile-reader)))
    (synopsis "Functional static site generator")
    (description "Haunt is a static site generator written in Guile
Scheme.  Haunt features a functional build system and an extensible
interface for reading articles in any format.")
    (home-page "http://haunt.dthompson.us")
    (license gpl3+)))


(define guile-syntax-highlight
  (package
    (name "guile-syntax-highlight")
    (version "git-a047675")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "git://dthompson.us/guile-syntax-highlight.git")
                    (commit "a047675")))
              (sha256
               (base32
                "1zjr6sg3n7xbdsliy45i39dqanxvcms58ayx36wxrz72zpq58vq3"))))
    (build-system gnu-build-system)
    (arguments
     '(#:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'bootstrap
           (lambda _ (zero? (system* "sh" "bootstrap")))))))
    (native-inputs
     `(("autoconf" ,autoconf)
       ("automake" ,automake)
       ("pkg-config" ,pkg-config)))
    (inputs
     `(("guile" ,guile-2.0)))
    (synopsis "General-purpose syntax highlighter for GNU Guile")
    (description "Guile-syntax-highlight is a general-purpose syntax
highlighting library for GNU Guile.  It can parse code written in
various programming languages into a simple s-expression that can be
converted to HTML (via SXML) or any other format for rendering.")
    (home-page "http://dthompson.us/software/guile-syntax-highlight")
    (license lgpl3+)))


(package
  (name "8sync-website")
  (version "git")
  (source #f)
  (build-system gnu-build-system)
  (synopsis #f)
  (description #f)
  (license #f)
  (home-page #f)
  (inputs
   `(("guile" ,guile-2.0)))
  (propagated-inputs
   `(("haunt" ,haunt)  ; haunt from Guix proper, for now
     ("guile-syntax-highlight" ,guile-syntax-highlight))))
